iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Modern Web

WebGIS入門學習 - 以Openlayers實作系列 第 3

Day 03. QGIS Server 發佈地圖服務 (Apache)

  • 分享至 

  • xImage
  •  

前言

昨天我們學會了如何安裝資料庫,今天我們要來學如何發布地圖服務
首先要先說明:什麼是地圖服務?
地圖服務就是可以把我們現有的文字資料、Shapefile檔等發布成WMS、WMTS、WFS等,在開發WebGIS的時候可以直接使用地圖API的function根據現在的Extent去撈取資料,而不用再透過後端寫一支API撈資料後再展到圖台上
是一個方便介接與撈取資料的方式

地圖服務的發佈有很多方法,有要錢的ArcGIS Server,也有不用錢的GeoServerMapServerQGIS Server等,每個都各有優缺
像GeoServer是我用過算是最簡單與最容易安裝的,但相對彈性也較小
ArcGIS Server、QGIS Server安裝與使用上都相對較為複雜,對於圖層的調整就彈性許多,以上為個人想法
我自己工作上最常用ArcGIS Server,因此想找個差不多的發服務方式,就選擇了QGIS Server了

當然如果你決定使用GeoServer等其他方法,可以參考其他大神的文章,地圖服務發布後都是差不多的,可以跳過我這邊的QGIS Server的說明~

我一決定使用QGIS Server就開始後悔了,因為網路上文件相對於其他的,安裝設定技術文章少之又少,花了不少時間、開了不少VM在測試,最後寫成這幾篇文章提供大家少走一點錯路。/images/emoticon/emoticon13.gif

所以接下來我們就來開始安裝QGIS Server吧!會分成使用ApacheIIS發布兩種方法,此篇為Apache

今天的主要大綱:

  1. QGIS和QGIS Server的安裝
  2. 應用Apache系列
    2-1. Apache安裝
    2-2. QGIS Server與Apache之間相關重要設定

注意!Apache和IIS皆為服務發布工具,請擇一使用


1. QGIS和QGIS Server的安裝

首先,先安裝免費的QGIS和QGIS Server軟體

可以看到有QGIS的獨立安裝版OSGeo4W集合套件
OSGeo4W是用於開源GIS產品的Windows安裝軟體,它集合了許多開源套件(如:GDAL、Openlayers等)可由上述安裝檔管理。
有用過QGIS的人應該多多少少都會發現QGIS許多函式都是使用GDAL套件寫成的,開源套件的本質就代表會有許多的Open產品與功能之間相互依賴才有辦法形成一套較為完整且相容的軟體。

又舉個例子,在GIS領域中,許多的軟體都是使用Python寫成的,而windows系統上如果裝了ArcGIS、又裝了QGIS又再自己裝了Anaconda、又獨立裝了Python2和Python3,請問你的電腦有多少個Python?而在真正執行的到底又是哪個版本的Python?

相信除了非常了解自己電腦的運作的開發者以外,對大部分使用者來說就是個謎,遇到錯誤連為什麼發生的可能都搞不清楚
因此這就是OSGeo4W的用處,可以追蹤版本與共享需求,算是個控管的套件


下載並安裝 OSGeo4W Network Installer (64 bit)

實際安裝步驟

  1. 執行安裝檔 osgeo4w-setup-x86_64.exe
  2. 選擇advanced install,Install form Internet
    https://ithelp.ithome.com.tw/upload/images/20200912/20108631T0w9XIWsfX.png
  3. 指定安裝目錄,通常預設為 C:\OSGeo4W64
  4. 選擇下載位置,這邊隨便選一個就可以了 (ex. http://osgeo4w-oslandia.com)
    https://ithelp.ithome.com.tw/upload/images/20200912/20108631ExwY5TF4nY.png
  5. 在 Select Packages頁面上Search欄位打上qgis,安裝qgis-ltrqgis-ltr-server
    (也可以安裝qgis和qgis-server版本,但本篇文章以qgis-ltr為例)
    https://ithelp.ithome.com.tw/upload/images/20200912/20108631tHy8VYPyoG.png
  6. 接著一直按下一步、同意到最後即可完成qgis和qgis server的安裝

2. 應用Apache系列

2-1. Apache安裝

QGIS Server原始是搭配Apache進行網站、程式的架設,因此本篇文章先以Apache為主要介紹
下一章節會再介紹使用IIS如何發布服務之方法
但要注意的若使用本篇的方法在同一台電腦上,Apache和IIS的port要設為不同,否則會相衝

下載Apache,路徑如下:
Download VS16 Apache 2.4 Server and Modules

實際安裝步驟

  1. 解壓縮httpd-2.4.43-win64-VS16.zip
  2. 將裡面的資料夾Apache24放置在較好記得的位置,例如解壓縮在C:\APP\Apache24
    https://ithelp.ithome.com.tw/upload/images/20200912/20108631H70CXrvv3M.png
  3. 以系統管理員身分打開命令提示字元,輸入以下指令,將 Apache HTTP Server 以服務的類型安裝。
    cd C:\App\Apache24\bin
    httpd.exe -k install
    
  4. 以文字編輯器打開 C:\App\Apache24\conf\httpd.conf,並更改以下內容
    第37行更改為 Apache HTTP Server 所在的位置
    Define SRVROOT "c:/APP/Apache24"
    

https://ithelp.ithome.com.tw/upload/images/20200912/20108631VaTFt0rMjK.png
接著修改Port,80是預設的監聽埠,如果原本電腦內就有安裝IIS,80 Port會被占掉,所以要給他一個沒有被監聽的Port
修改第60行,可隨便改一個沒有被占用的Port,像8888

Listen 8888
  1. 儲存文件,打開 C:\App\Apache24\bin\ApacheMonitor.exe 啟動 Apache 2.4 服務 (Start)
    https://ithelp.ithome.com.tw/upload/images/20200912/20108631c3h2uoL6Hj.png
    打開瀏覽器,輸入連結 http://127.0.0.1:<剛才設置的Port>/ ,可以看到一個默認的頁面It Works!,說明伺服器已經搭建成功。
    (若為預設80 Port,可直接打http://127.0.0.1;若剛剛設置Port為8888,則輸入http://127.0.0.1:8888)
  2. 完成Aapche Server的安裝

2-2. QGIS Server與Apache之間相關重要設定

目前已分別完成QGIS Server和Apache的安裝,接下來的步驟要讓兩者之間關聯

先下載Microsoft Visual C++ Redistributable 可轉散發套件 VC_redist.x64.exe
再下載Apache FastCGI模組,路徑如下 (拉下去,選擇mod_fcgid下的套件):
Download VS16 Apache 2.4 Server and Modules
mod_fcgid-2.3.10-win64-VS16.zip 先備著,步驟3會用到

實際設定步驟

  1. 以系統管理員身分安裝剛剛下載的Microsoft Visual C++ Redistributable套件,安裝完成後請重新開機 (若已安裝過則不用安裝)

  2. 複製 C:\OSGeo4W64\httpd.d\httpd_qgis-ltr.conf 到 C:\APP\Apache24\conf\extra

  3. 編輯 C:\APP\Apache24\conf\httpd.conf 以下內容並將其添加到該 # Supplemental configuration 部分:

    Include conf/extra/httpd_qgis-ltr.conf
    
  4. 引入FastCGI模組,將剛剛下載的 mod_fcgid/mod_fcgid.so 複製到 C:\APP\Apache24\modules

  5. 重新啟動Apache看是否啟動成功

  6. 打開瀏覽器,輸入連結 http://127.0.0.1:<剛才設置的Port>/qgis-ltr/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
    若返回XML結構,則為設置成功,例如:
    http://127.0.0.1:8888/qgis-ltr/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
    https://ithelp.ithome.com.tw/upload/images/20200912/201086318ef1p38LST.png

  7. 接下來給 qgis-ltr/qgis_mapserv.fcgi.exe 一個名稱,不要直接顯示.exe檔,因此在httpd.conf 第一行新增

    ScriptAlias /qgisserver "c:/OSGeo4W64/apps/qgis-ltr/bin/qgis_mapserv.fcgi.exe"
    

    重新測試網址是否可瀏覽:
    http://localhost:8888/qgisserver?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities


小結

今天學會了如何安裝QGIS Server、安裝Apache和兩者之間的設定
明天會教另一種方式,使用IIS進行QGIS Server的架設,Apache和IIS選一個使用就好了!
後天會說明如何利用QGIS Server(含Apache和IIS)以Shapefile發布服務和連結DB資料庫發布服務

Aapche和IIS如何選擇?

如果是我的話我建議使用Apache,IIS的設定更為複雜
但如果電腦已經有灌IIS,且要使用的Port會衝到的話,那還是選IIS吧!

我想要使用簡單的GeoServer可以嗎?

當然可以!這樣就直接跳過QGIS Server這幾個天的內容就可以了
對新手來說GeoServer確實還是比較容易上手,會寫QGIS Server的安裝步驟是讓想使用的人少走點冤妄路。

由於此部分都是自學而來的,若有敘述錯誤的地方還請各位大大見諒,感謝!/images/emoticon/emoticon41.gif


上一篇
Day 02. SQL Server 安裝與設定
下一篇
Day 04. QGIS Server 發佈地圖服務 (IIS)
系列文
WebGIS入門學習 - 以Openlayers實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言